<?php




//
function sendToken($user_id,$mobile)
{
    $data = [
        'iss'=>request()->domain(),
        'itm'=>time(),
        'data'=>[
            'user_id'=>$user_id,
            'mobile'=>$mobile
        ]
    ];
    $key = config('app.jwt_key');
    $token =  Firebase\JWT\JWTencode($data,$key,'HS256');
    return $token;
}

//成功
function success($msg = '',$data = null)
{
    return json([
        'code' => 1,
        'msg' => $msg,
        'data' => $data
    ]);
}
//失败
function error($msg = '',$data = null)
{
    return json([
        'code' => 0,
        'msg' => $msg,
        'data' => $data
    ]);
}

//use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi;
//use AlibabaCloud\SDK\Dysmsapi\V20170525\Models\SendSmsRequest;
//use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
//use Darabonba\OpenApi\Models\Config;

use think\facade\Db;

//公共函数

//
function sendToken($user_id,$mobile)
{
    $data = [
        'iss'=>request()->domain(),
        'itm'=>time(),
        'data'=>[
            'user_id'=>$user_id,
            'mobile'=>$mobile
        ]
    ];
    $key = config('app.jwt_key');
//    $token =  \Firebase\JWT\JWT::encode($data,$key,'HS256');
//    return $token;
}

//function sendAliSms($mobile)
//{
//    $config = new Config([
//        // 从阿里云获取
//        'accessKeyId' => config('app.aliSms.accessKeyId'),
//        'accessKeySecret' => config('app.aliSms.accessKeySecret'),
//    ]);
//
//    $config->endpoint = "dysmsapi.aliyuncs.com";
//    $client = new Dysmsapi($config);
//
//    // 运行时参数超时设置，仅对使用了该运行时参数实例的请求有效
//    $runtimeOptions = new RuntimeOptions();
//    // true 忽略证书校验
//    $runtimeOptions->ignoreSSL = true;
//
//    $sendSmsRequest = new SendSmsRequest();
//    // 手机号
//    $sendSmsRequest->phoneNumbers = $mobile;
//    // 签名名称
//    $sendSmsRequest->signName = '替换为你申请的签名';
//    // 模板CODE
//    $sendSmsRequest->templateCode = '替换为你申请的模板CODE';
//    // 生成随机数作为验证码
//    $code = mt_rand(1111, 9999);
//    $sendSmsRequest->templateParam = json_encode(['code' => $code]);
//    try {
//        $response = $client->sendSmsWithOptions($sendSmsRequest, $runtimeOptions);
//    } catch (\Exception $exception) {
//        halt($exception->getMessage());
//    }
//    if ($response->body->code == 'OK') {
//        Db::name('users')->insert([
//            'mobile' => $mobile,
//            'code' => $code,
//            'send_time' => time()
//        ]);
//        echo '短信发送成功！';
//    }
//}
//模拟发送
function sendSms($mobile)
{
    $code = mt_rand(1111, 9999);

    Db::name('users')->insert([
        'mobile' => $mobile,
        'code' => $code,
        'send_time' => time()
    ]);
    echo $code;

}

function checkSmsCode($mobile,$code)
{
    $log = \api\zmt\model\UserModel::where('mobile','=',$mobile)->find();
    if(!$log)
    {
        return false;
    }
    if($log['code'] != $code)
    {
        return false;
    }
    if(time() - $log['send_time'] > 600)
    {
        \api\zmt\model\UserModel::where('mobile','=',$mobile)
            ->delete();
        return false;
    }
    \api\zmt\model\UserModel::where('mobile','=',$mobile)
        ->delete();
    return true;
}

//支付
function money_log($user_id,$wallet,$before,$after,$type)
{
    $money_log = [
        'user_id' => $user_id,
        'wallet' => $wallet,
        'before' => $before,
        'after' => $after,
        'type' => $type,
        'create_time' => date('Y:m:d H:i:s')
    ];
    $res = \api\zmt\model\MoneyModel::create($money_log);
    if ($res) {
        return json(['code' => '1', 'msg' => '流水记录表添加成功']);
    } else {
        return json(['code' => '0', 'msg' => '流水记录表添加失败']);
    }
}